﻿using ServicioTecnico.Entidad;
using ServicioTecnico.Negocio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ServicioTecnico.UI
{
    public partial class frmCliente : Form
    {
        public string operacion { get; set; }
        public frmCliente(string op)
        {
            operacion = op;
            InitializeComponent();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void InsertarCliente()
        {
            Cliente cliente = new Cliente();
            cliente.activo = 1;
            cliente.apellido = txtApellido.Text;
            cliente.celular = txtCelular.Text;
            cliente.cp = txtCp.Text;
            cliente.cuit = txtCuit.Text;
            cliente.direccion = txtDireccion.Text;
            cliente.documento = txtDni.Text;
            cliente.email = txtEmail.Text;
            cliente.fechanacimiento = dtpFechaNac.Value;
            cliente.localidad = txtLocalidad.Text;
            cliente.nombres = txtNombres.Text;
            cliente.razonsocial = txtRazonSocial.Text;
            cliente.telefono = txtTelefono.Text;

            int resultado = Clientes.Add(cliente);
            if (resultado > 0)
            {
                MessageBox.Show("El Cliente se registro con éxito.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                LimpiarControles();
            }
            else
            {
                MessageBox.Show("Ocurrio un error al registrar el Cliente. Intente Nuevamente", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }


        private void LimpiarControles()
        {
            txtApellido.Text = string.Empty;
            txtCelular.Text = string.Empty;
            txtCodigo.Text = string.Empty;
            txtCp.Text = string.Empty;
            txtCuit.Text = string.Empty;
            txtDireccion.Text = string.Empty;
            txtDni.Text = string.Empty;
            txtEmail.Text = string.Empty;
            txtLocalidad.Text = string.Empty;
            txtNombres.Text = string.Empty;
            txtRazonSocial.Text = string.Empty;
            txtTelefono.Text = string.Empty;
            this.ActiveControl = txtNombres;
        }


        private void btnGuardar_Click(object sender, EventArgs e)
        {          
            if(ValidarForm()== true)
            {
                if (operacion == "ALTA")
                    InsertarCliente();
               
            }                 
        }


        private Boolean ValidarForm()
        {
            bool resultado = true;
            error.Clear();

            if(String.IsNullOrEmpty(txtApellido.Text))
            {
                resultado = false;
                error.SetError(txtApellido, "Debe completar el campo Apellido.");
            }
            if (String.IsNullOrEmpty(txtNombres.Text))
            {
                resultado = false;
                error.SetError(txtNombres, "Debe completar el campo Nombres.");
            }
            if (String.IsNullOrEmpty(txtDni.Text))
            {
                resultado = false;
                error.SetError(txtDni, "Debe completar el campo D.N.I.");
            }
            if(String.IsNullOrEmpty(txtDireccion.Text))
            {
                resultado = false;
                error.SetError(txtDireccion, "Debe completar el campo Dirección.");
            }           

            return resultado;
        }

        private void IniciarControles()
        {
            txtCodigo.Enabled = false;
        }


        private void frmCliente_Load(object sender, EventArgs e)
        {
            this.Text = "Clientes - Registro de Nuevo Cliente";
            IniciarControles();
            this.ActiveControl = txtNombres;
        }
    }
}
